package com.bjpowernode.ba07;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @Value: 简单类型的属性赋值
 * 属性： value是string类型的，表示简单类型的属性值
 * 位置：1.在属性定义的上面，无需set方法，推荐使用
 *      2.在set方法上面
 */

//省略value ，最常用方式
@Component("myStudent")
public class Student {
    @Value("张三")
    private  String name;
    private  Integer age;

    /**
     * 引用类型
     * @Resource:来自jdk中的注解，spring框架提供了对这个注解的功能支持。
     * 可以使用它给引用类型赋值。使用的地方也是自动注入原理。byNmae、byType。默认byName
     *
     * @Resource只使用byName方式，需要增加一个属性name
     * name的值是bean的id名称
     */

    //只是用byName
    @Resource(name = "mySchool")
    private School school;

    public Student(){
        System.out.println("无参数构造");
    }



    @Value( "23")
    public void setAge(Integer age) {
        System.out.println("aa:"+age);
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school=" + school +
                '}';
    }
}
